-- 基于redis实现时间窗功能 --返回1代表不限流
local key = KEYS[1]             --限流key
local limit = tonumber(ARGV[1]) --限流大小
local expire = ARGV[2]          --过期时间
-- 获取当前计数值
local current = tonumber(redis.call('get', key) or "0")
if current + 1 > limit then     --如果超出限流大小
    return 0
else
    current = tonumber(redis.call('INCRBY', key, "1"))
    if current == 1 then        --第一次访问需要设置过期时间
        redis.call('expire', key, expire)   --设置过期时间
    end
end
return 1